﻿using System;

namespace Teigha.Core
{
	public class OdGiPathNode_Internal : OdGiPathNode
	{
		public OdGiPathNode_Internal(IntPtr cPtr, bool cMemoryOwn) : base(cPtr, cMemoryOwn)
		{
		}

		public override OdGiPathNode parent()
		{
			IntPtr cPtr = GlobalsPINVOKE.OdGiPathNode_parent(OdGiPathNode.getCPtr(this));
			OdGiPathNode result = new OdGiPathNode_Internal(cPtr, false);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public override OdDbStub persistentDrawableId()
		{
			IntPtr cPtr = GlobalsPINVOKE.OdGiPathNode_persistentDrawableId(OdGiPathNode.getCPtr(this));
			OdDbStub result = new OdDbStub(cPtr, false);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public override OdGiDrawable transientDrawable()
		{
			IntPtr cPtr = GlobalsPINVOKE.OdGiPathNode_transientDrawable(OdGiPathNode.getCPtr(this));
			OdGiDrawable result = new OdGiDrawable_Internal(cPtr, false);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public override IntPtr selectionMarker()
		{
			IntPtr result = GlobalsPINVOKE.OdGiPathNode_selectionMarker(OdGiPathNode.getCPtr(this));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}
	}
}
